exports.install = function(Vue, options) {

    /**
     *[setFormatDate 设置时间格式]
     * @param  {[type]} timer [时间参数]
     * @param  {[type]} type  [格式类型] date[日期], time[时间], null[日期|时间]
     * @return {[type]}       [返回日期时间字符串]
     */
    Vue.prototype.setFormatDate = function(timer, type) {
        let oDay = new Date(timer),
            year = oDay.getYear(), // 当前年份
            fullyear = oDay.getFullYear(), //完整的年月日（xx年，xx月，xx日）
            month = parseInt(oDay.getMonth() + 1) >= 10 ? parseInt(oDay.getMonth() + 1) : '0' + parseInt(oDay.getMonth() + 1), // 当前的月份(0-11) 
            date = oDay.getDate() >= 10 ? oDay.getDate() : '0' + oDay.getDate(), // 当前的日(1-31) 
            day = oDay.getDay(), // 当前的星期X(0-6,0代表星期天) 
            time = oDay.getTime(), // 当前的时间(从1970.1.1开始的毫秒数) 
            hours = oDay.getHours() >= 10 ? oDay.getHours() : '0' + oDay.getHours(), // 当前的小时数(0-23) 
            minutes = oDay.getMinutes() >= 10 ? oDay.getMinutes() : '0' + oDay.getMinutes(), // 当前的分钟数(0-59) 
            seconds = oDay.getSeconds() >= 10 ? oDay.getSeconds() : '0' + oDay.getSeconds(), // 当前的秒数(0-59) 
            milliseconds = oDay.getMilliseconds(), // 当前的毫秒数(0-999) 
            oDate = oDay.toLocaleDateString(), // 当前的日期 
            oTime = oDay.toLocaleTimeString(), // 当前的时间
            callback = fullyear + '-' + month + '-' + date + ' ' + hours + ':' + minutes + ':' + seconds;
        if (!type) return callback
        switch (type.toLowerCase()) {
            case 'date':
                callback = fullyear + '-' + month + '-' + date;
                break;
            case 'time':
                callback = hours + ':' + minutes + ':' + seconds;
                break;
            default:
        }
        return callback
    };


    /**
     * [removeArrayRepeat 数组移除重复]
     * @param {[type]} array [原始数组]
     * @param {[type]} key   [关键词|属性] null 对比当前值. key 对比属性值
     */
    Vue.prototype.removeArrayRepeat = function(array, key) {
        let newArray = [array[0]];
        array.forEach(function(_item, _index) {
            let _flag = false;
            newArray.forEach(function(_newItem, _newIndex) {
                if (key != null) {
                    if (_item[key] == _newItem[key]) {
                        return _flag = true;
                    }
                } else {
                    if (_item == _newItem) {
                        return _flag = true;
                    }
                }
            })
            if (!_flag) newArray.push(_item)
        })
        return newArray;
    };


    /**
     * [setArraySort 设置数组排序]
     * @param {[type]} array [原始数组]
     * @param {[type]} key   [关键词|属性] key 对比属性值]
     */
    Vue.prototype.setArraySort = function(array, key) {
        let newArray = array.sort(function(a, b) {
            let x = a[key].toLowerCase();
            let y = b[key].toLowerCase();
            if (x < y) return -1;
            if (x > y) return 1;
            return 0;
        });
        return newArray;
    };


    /**
     * [setArrayReverse 数组倒序]
     * @param {[type]} array [原始数组|返回数组]
     */
    Vue.prototype.setArrayReverse = function(array) {
        return array.reverse();
    }
};